Creating an executable computer program generally involves generating algorithms, verifying the correctness of the algorithms, and implementing the algorithms into a programming language. This process often requires expertise in many areas, including coding in the target programming language. For example, in an Integrated Developer Environment such as MICROSOFT VISUAL STUDIO, a designer exists to create a user interface form for an application. Typically, application data is obtained from a database with metadata, and the metadata is used to generate forms for the different types of data within the database.
Spreadsheet software such as MICROSOFT EXCEL has allowed for users to input data into cells without specifying a data type, and in some cases infers a data type for the input data to change the format of a cell automatically. For example, a series of six consecutive numerals within a cell is often automatically formatted as a date using a default date format. The default date format may be changed to a different date format by a user selecting from a list of available date formats, or the formatted cell may be changed by a user selecting a different data type, such as a currency rather than a date for the numbers within the cell. However developer environments may require data from a spreadsheet to be imported into a relational database that provides the metadata needed to create the user interface form for the application.
Presentation software such as MICROSOFT POWER POINT has allowed for users to generate slides using modifiable templates, or in some cases create slides from a blank slide document by inserting components and data manually. However, because presentation software is usually focused on a static presentation of data, there is often no concern with providing dynamic data or opportunities for user interaction to affect data.